boto3でEC2.InstanceオブジェクトからNameタグを取得する方法[Python]
こんにちは、臼田です。
皆さんPython書いてますか?
boto3で書いてて、ぐぐってもあんまりいい情報がなかったのでNameタグを取得する方法を共有します。
スクリプト
# -*- coding: utf-8 -*- import boto3 ec2 = boto3.resource('ec2') instance = ec2.Instance(id='i-xxxxxxxx') name_tag = [x['Value'] for x in instance.tags if x['Key'] == 'Name'] name = name_tag[0] if len(name_tag) else '' print(name)
Python 3.6で動作しない問題を修正しました。2.7, 3.6で動作を確認しています。ご指摘いただいたしんさかさん、ありがとうございます!
ec2.Instance.tags
で該当インスタンスのタグ一覧を取得して、filterで"key": "Name"
のdictを取得します。
filter結果はlistになっているので[0]
から取り出し、もしNameタグがなければfilter結果が空なので''
を返します。
正直これが一番いいかわかりません。
他にもっといい方法があったら教えてほしいです。